home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 September / PCWorld_2008-09_cd.bin / v cisle / sadanastroju / greasemonkey-0.8.20080609.0-fx.xpi / chrome / greasemonkey.jar / chromeFiles / content / miscapis.js < prev    next >
Text File  |  2008-06-09  |  3KB  |  105 lines

  1. function GM_ScriptStorage(script) {
  2.   this.prefMan = new GM_PrefManager(["scriptvals.",
  3.                                      script.namespace,
  4.                                      "/",
  5.                                      script.name,
  6.                                      "."].join(""));
  7. }
  8.  
  9. GM_ScriptStorage.prototype.setValue = function(name, val) {
  10.   if (!GM_apiLeakCheck("GM_setValue")) {
  11.     return;
  12.   }
  13.  
  14.   this.prefMan.setValue(name, val);
  15. };
  16.  
  17. GM_ScriptStorage.prototype.getValue = function(name, defVal) {
  18.   if (!GM_apiLeakCheck("GM_getValue")) {
  19.     return;
  20.   }
  21.  
  22.   return this.prefMan.getValue(name, defVal);
  23. };
  24.  
  25. function GM_Resources(script){
  26.   this.script = script;
  27. }
  28.  
  29. GM_Resources.prototype.getResourceURL = function(name) {
  30.   if (!GM_apiLeakCheck("GM_getResourceURL")) {
  31.     return;
  32.   }
  33.  
  34.   return this.getDep_(name).dataContent;
  35. };
  36.  
  37. GM_Resources.prototype.getResourceText = function(name) {
  38.   if (!GM_apiLeakCheck("GM_getResourceText")) {
  39.     return;
  40.   }
  41.  
  42.   return this.getDep_(name).textContent;
  43. };
  44.  
  45. GM_Resources.prototype.getDep_ = function(name) {
  46.   var resources = this.script.resources;
  47.   for (var i = 0, resource; resource = resources[i]; i++)
  48.     if (resource.name == name)
  49.       return resource;
  50.   throw new Error("No resource with name: " + name); // NOTE: Non localised string
  51. };
  52.  
  53. function GM_ScriptLogger(script) {
  54.   var namespace = script.namespace;
  55.  
  56.   if (namespace.substring(namespace.length - 1) != "/") {
  57.     namespace += "/";
  58.   }
  59.  
  60.   this.prefix = [namespace, script.name, ": "].join("");
  61. }
  62.  
  63. GM_ScriptLogger.prototype.log = function(message) {
  64.   GM_log(this.prefix + message, true);
  65. };
  66.  
  67.  
  68. // Based on Mark Pilgrim's GM_addGlobalStyle from
  69. // http://diveintogreasemonkey.org/patterns/add-css.html. Used by permission
  70. // under GPL: http://diveintogreasemonkey.org/license/gpl.html
  71. function GM_addStyle(doc, css) {
  72.   var head, style;
  73.   head = doc.getElementsByTagName("head")[0];
  74.   if (!head) { return; }
  75.   style = doc.createElement("style");
  76.   style.type = "text/css";
  77.   style.innerHTML = css;
  78.   head.appendChild(style);
  79. }
  80.  
  81. function GM_console(script) {
  82.   // based on http://www.getfirebug.com/firebug/firebugx.js
  83.   var names = [
  84.     "debug", "warn", "error", "info", "assert", "dir", "dirxml",
  85.     "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile",
  86.     "profileEnd"
  87.   ];
  88.  
  89.   for (var i=0, name; name=names[i]; i++) {
  90.     this[name] = function() {};
  91.   }
  92.  
  93.   // Important to use this private variable so that user scripts can't make
  94.   // this call something else by redefining <this> or <logger>.
  95.   var logger = new GM_ScriptLogger(script);
  96.   this.log = function() {
  97.     logger.log(
  98.       Array.prototype.slice.apply(arguments).join("\n")
  99.     );
  100.   };
  101. }
  102.  
  103. GM_console.prototype.log = function() {
  104. };
  105.